package com.example.concurrency.thread01_template_method1;

/**
 * @description: 测试
 * @program: demos
 * @author: dove
 * @date: 2020-12-02 23:49
 *
 * 从测试中我们能看到，子类重写了父类的方法后，可以自定义自己的方法内容。但是这样做还有一个问题：
 *  那就是子类只能按照父类定义好的方法完成事情，并不能根据自己的需要选择性的重写部分方法。
 *  解决的方法是给我们的模板方法类配置一个钩子函数，让子类通过钩子函数决定是否需要执行某个方法
 *  参考template_method2
 **/

public class CookTest {
    public static void main(String[] args) {
        new MyCook().cook();
        new YourCook().cook();
//        // 向上转型
//        Cook cook = new MyCook();
//        cook.cook();
//        Cook cook1 = new YourCook();
//        cook1.cook();
//
//        // 向下转型
//        MyCook myCook = (MyCook) cook;
    }
}
